package com.xbongbong.saas.domain.entity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.enums.DelEnum;
import com.xbongbong.paas.toolbox.util.DateTimeUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * @author feng.zheng
 * @version v1.0
 * @date 2019/2/21 14:26
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class InventoryProductEntity implements Serializable{

    private static final long serialVersionUID = 9207578599133678672L;

    /**
     * 盘点单产品id
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 盘点单id
     */
    private Long inventoryId;
    /**
     * 父产品id
     */
    private Long parentId;
    /**
     * 产品id
     */
    private Long productId;
    /**
     * 表单id
     */
    private Long formId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 产品编号
     */
    private String productNo;
    /**
     * 产品规格
     */
    private String productSpecification;
    /**
     * 产品数量
     */
    private Double productNum;
    /**
     * 产品单位
     */
    private String productUnit;
    /**
     * 产品价格
     */
    private Double productPrice;
    /**
     * 账面数量
     */
    private Double oriNum;
    /**
     * 添加时间
     */
    private Long addTime;
    /**
     * 更新时间
     */
    private Long updateTime;
    /**
     * 删除标志
     */
    private Integer del;
    /**
     * 仓库id
     */
    private Long warehouseId;

    /**
     * 产品图片地址
     */
    private String imageUrl;
    private Long categoryId;
    /**
     * 产品条码
     */
    private String barcode;

    private String priceStr = "";
    private String productNumStr = "";
    private JSONArray specificationArray = new JSONArray();
    /**
     * 用于更新单据关联产品时给更改仓库库存时使用，扩展字段
     */
    private Double changeNum;

    private ProductBaseInfoEntity productBaseInfoEntity;
    /**
     * 产品批次
     */
    private String batch;
    /**
     *
     * 生产日期
     *
     * */
    private Long produceDate;
    /**
     *
     * 保质期（秒）
     *
     * */
    private Long guaranteePeriod;
    /**
     * 产品展示排序
     *
     */
    private Integer sort;

    private JSONObject data;
    /**
     * 导出 关联产品的产品规格
     */
    private String formatedSpecification;
    /**
     * 库存
     */
    private Double stock;
    /**
     * 产品图片
     */
    private JSONArray imageUrlArray;

    private String memo;

    public InventoryProductEntity() {
        this.corpid = "";
        this.inventoryId = 0L;
        this.productId = 0L;
        this.productName = "";
        this.productNo = "";
        this.productSpecification = "";
        this.productNum = 0d;
        this.oriNum = 0d;
        this.productUnit = "";
        this.productPrice = 0d;
        this.del = DelEnum.NORMAL.getDel();
    }
}
